enum Move { Hit, Stand };
class BlackJack;
class Dealer
{
public:
    Dealer();
    void sendCard(BlackJack *player);
    void playerInput(Move move, BlackJack *player);
    void move(Move move);
private:
    std::list<Card*> hand;
    std::list<BlackJack*> players;
    std::vector<Card*> deck;
};

class Player
{
public:
    enum PlayerType { Dealer, Player };
    enum Move { Hit, Stand };
    Player(PlayerType type, const std::string &name);
    void move(Move move);
    virtual bool autoMove();
    void bet(double dollars);
    void ante();
protected:
    std::list<Card*> hand;
    const std::string name;
    const PlayerType type;
};

class Dealer : public Player
{
public:
    Dealer();
    bool autoMove();
};

// class BlackJack : public CardEngine
// {
// public:
//     BlackJack();
//     virtual void handlePress(const Point &pos);
//     void hit();
//     void stand();
//     void bet(double dollars);
// };

